package 富婆梦.第一阶段.第五周.作业.俄罗斯转盘;

import java.util.LinkedList;

/**
 * @ProjectName: java-learning
 * @Package: 富婆梦.第一阶段.第五周.作业.俄罗斯转盘
 * @ClassName: Loop
 * @Author: hemengjin
 * @Description: 只包含一个静态方法，该方法用来更新玩家list，将死掉的玩家清理，并将活着的玩家重新排序
 * @Date:2021/8/22 16:24
 * @Version: 1.0
 */
public class Loop {
    //每次有人中枪将调整队列顺序来调整开枪顺序
    //传入参数为：当前玩家list，中枪者的位置；返回参数为：剔除中枪者后的玩家list
    public static LinkedList<Player> queue(LinkedList<Player> list,int index){
        //找到中枪的人的位置
        int size = list.size();
        //声明临时数组，用于存放应该排在队列前面的玩家集合
        LinkedList<Player> temp = new LinkedList<>();
        //有人中枪之后，将后面的几个人排序至队列前面，从他们开始开枪
        for (int i=index+1;i<size;i++){
            temp.add(list.get(i));
        }
        for (int i=index;i<size;i++){
            list.removeLast();
        }
        for (int i=0;i<temp.size();i++){
            list.add(i,temp.get(i));
        }
        return list;
    }

    public static void main(String[] args) {
        LinkedList<Player> list = new LinkedList<>();
        list.add(new Player("小A"));
        list.add(new Player("小B"));
        list.add(new Player("小C"));
        list.add(new Player("小D"));
        Loop.queue(list,0);
    }
}
